package com.nio.buffer;


import java.nio.ByteBuffer;

public class BufferDemo01 {

    public static void main(String[] args) {
        byte[] data = new byte[] {55, 56, 57, 58, 59};

        // 将byte数组，作为核心数据放到缓冲区里去
        ByteBuffer buffer = ByteBuffer.wrap(data);


        /**
         * 从磁盘文件读取数据，或者从网络里都数据到内存
         */
        // 普通buffer设置
        buffer = ByteBuffer.allocate(10);
        // direct模式下分配buffer，整体性能可以比普通模式稍微高一些
        buffer = ByteBuffer.allocateDirect(10);

        System.out.println(buffer.capacity());
        System.out.println(buffer.position());
        System.out.println(buffer.limit());

        // 把当前position所在位置的数据读取一位出来
        System.out.println(buffer.get());
        System.out.println(buffer.position());
        // 在position = 1的时候打的mark，标记
        buffer.mark();

//		buffer.position(3);
//		buffer.limit(4);

        buffer.position(3);
        System.out.println(buffer.get());
        System.out.println(buffer.position());

        buffer.reset();
        System.out.println(buffer.position());
        System.out.println(buffer.get());
    }
}
